package com.tinyseed.emcp.api.basicdata.model;

import com.tinyseed.emcp.api.basicdata.domain.Monitor;
import com.tinyseed.emcp.api.basicdata.domain.convert.DTOConvert;
import lombok.Data;
import org.springframework.beans.BeanUtils;

import java.io.Serializable;
import java.sql.Timestamp;

/***
 * @ClassName: MonitorOutputDTO
 * @Description: TODO
 * @Auther: Harlan.Xiong
 * @Date: 2019-11-24 23:34
 * @version : V1.0
 */

@Data
public class MonitorOutputDTO implements Serializable {
    /**
     * 唯一主键
     */
    private Long id;

    /**
     * 监测点名字
     */
    private String monitorName;

    /**
     * 网关编号
     */
    private String switchSn;

    /**
     * 功率启停阈值(kW)
     */
    private Float powerLimit;

    /**
     * 功率门限时间(分钟)
     */
    private Long powerTime;

    /**
     * 车间id
     */
    private Long shopId;

    /**
     * 电压变比(电压互感器)
     */
    private String pt;

    /**
     * 电流变比(电流互感器)
     */
    private String ct;

    /**
     * 备注
     */
    private String remark;

    /**
     * 创建时间
     */
    private Timestamp createTime;
    /**
     * 最后修改时间
     */
    private Timestamp modifyTime;
    /**
     * 创建人
     */
    private String creator;
    /**
     * 最后操作人
     */
    private String modifier;

    /**
     * 监测点编码
     */
    private String monitorCode;

    /**
     * 设备类型
     */
    private String equipmentType;

    /**
     * 仪表地址
     */
    private String instrumentAddress;

    /**
     * 仪表型号
     */

    private String instrumentModel;

    /**
     * 额定功率(kw)
     */
    private Float ratedPower;

    /**
     * 额定电压(V)
     */
    private Float ratedVoltage;

    /**
     * 备用关系 1：用  2：备
     */
    private String relation;

    public Monitor convertToMonitor() {
        MonitorOutputDTO.MonitorOutPutDTOConvert convert = new MonitorOutputDTO.MonitorOutPutDTOConvert();
        Monitor result = convert.convert(this);
        return result;
    }

    private static class MonitorOutPutDTOConvert implements DTOConvert<MonitorOutputDTO, Monitor> {

        @Override
        public Monitor convert(MonitorOutputDTO monitorOutPutDTO) {
            Monitor monitor = new Monitor();
            BeanUtils.copyProperties(monitorOutPutDTO, monitor);
            return monitor;
        }
    }
}
